﻿/*** common ***/

$(document).ready(function () {
    $("[data-focus]").focus(); // data-focus 속성이 포험된 input 태그에 자동으로 focus
    $("[data-no-hangul]").keydown(noHangul);
});

/*** Article/Edit.cshtml ***/
var oEditors = [];

function se2init(id) {
    nhn.husky.EZCreator.createInIFrame({
        oAppRef: oEditors,
        elPlaceHolder: id,
        sSkinURI: "/Content/se2/SmartEditor2Skin.html",
        htParams: {
            bUseToolbar: true,
            fOnBeforeUnload: function () { },
            fOnAppLoad: function () { },
            fCreator: "createSEditor2"
        }
    });
}

function se2update() {
    var ID = $("textarea.smarteditor2").attr("id");
    oEditors.getById[ID].exec("UPDATE_CONTENTS_FIELD", []);
}

function pasteimage(ev) {
    var $this = $(this);
    var original = ev.originalEvent;
    var file = original.clipboardData.items[0].getAsFile();
    var reader = new FileReader();
    reader.onload = function (evt) {
        var result = evt.target.result;
        var arr = result.split(",");
        var data = arr[1]; // raw base64
        var contentType = arr[0].split(";")[0].split(":")[1];
        AjaxJsonCall_Callback("/Image/Paste", { contentType: contentType, data: data }, function (data) { oEditors.getById["글_내용"].exec("PASTE_HTML", ["<image src='" + data.url + "'/>"]); });
    };
    reader.readAsDataURL(file);
}

function initPasteImage() {
    $("iframe").contents().find("iframe").contents().find("body").bind("paste", pasteimage);
}

function ArticleEdit_init() {
    var id = $("textarea.smarteditor2").attr("id");
    se2init(id);
    var is_chrome = navigator.userAgent.toLowerCase().indexOf('chrome') > -1;
    if (is_chrome) setTimeout("initPasteImage()", 2000);
}

function 글저장() {
    se2update();
    AjaxJsonCall_Redirect("/Article/Save", $("#편집폼").serialize());
}

/*** Article/History.cshtml ***/
function 최신글로선택(글ID) {
    AjaxJsonCall_Redirect("/Article/SetTop", { ID: 글ID }, "최신글로 선택하시겠습니까?");
}

function DB에서글삭제(글ID) {
    AjaxJsonCall_Redirect("/Article/DeleteFromDB", { ID: 글ID }, "영구히 삭제하시겠습니까?");
}

/*** Search/Main.cshtml ***/
function 검색() {
    $("#키워드검색_결과").load("/Search/Do", $("#키워드검색_폼").serialize(), OnAjaxLoadComplete);
}

/*** Shared/_주제선택대화상자 ***/

var _주제선택대화상자_콜백함수;

function 주제선택대화상자_보이기(제목, 콜백함수) {
    $("#주제선택대화상자_제목").html(제목);
    _주제선택대화상자_콜백함수 = 콜백함수;
    $("#주제선택대화상자").modal('show');
}

function 주제선택대화상자_검색() {
    $("#주제선택대화상자_검색결과").load("/SubjectPicker/Search", { pattern: $("#주제선택대화상자_검색패턴").val() }, OnAjaxLoadComplete).selectable();
}

function 주제선택대화상자_확인() {
    var item = $("#주제선택대화상자_검색결과 .ui-selected");
    if (item.length == 0) { alert("주제를 선택하세요"); return; }
    _주제선택대화상자_콜백함수(item.attr("data-key"));
}

/*** Shared/_책갈피그룹선택대화상자 ***/

var _책갈피그룹선택대화상자_콜백;

function 책갈피그룹선택대화상자_보이기(제목, 콜백함수) {
    $('#책갈피그룹선택대화상자_제목').html(제목);
    _책갈피그룹선택대화상자_콜백 = 콜백함수;
    $('#책갈피그룹선택대화상자').modal('show');
    $("#책갈피그룹선택대화상자_그룹목록").load("/Bookmark/GroupList", null, OnAjaxLoadComplete).selectable();
}

function 책갈피그룹선택대화상자_확인() {
    var 선택항목 = $("#책갈피그룹선택대화상자_그룹목록 .ui-selected");
    var 책갈피그룹ID = (선택항목.length == 0) ? 0 : 선택항목.attr("data-key");
    _책갈피그룹선택대화상자_콜백(책갈피그룹ID);
    $('#책갈피그룹선택대화상자').modal('hide');
}

/*** Shared/_파일첨부대화상자.cshtml ***/

function 파일첨부대화상자_보이기(articleId, type) {
    $("#파일첨부대화상자 #waitimage").hide();
    $("#파일첨부대화상자 iframe").attr("src", "/File/Upload?articleId=" + articleId + "&type=" + type);
    $("#파일첨부대화상자").modal('show');
}

function 파일첨부대화상자_확인() {
    $("#파일첨부대화상자 #waitimage").show();
    $("#파일첨부대화상자 iframe").contents().find("form").submit();
}

function 파일첨부_성공콜백(articleId, type) {
    $("#파일첨부대화상자 #waitimage").hide();
    if (type == 1) {
        $("#첨부파일목록_" + articleId).load("/File/List?type=1&articleId=" + articleId);
    }
    else if (type == 2) {
        $(".첨부파일목록").load("/File/List?type=2&articleId=" + articleId);
    }
    $("#파일첨부대화상자").modal('hide');
}
function 파일첨부_실패콜백(articleId, type) {
    $("#파일첨부대화상자 #waitimage").hide();
}

function 첨부파일삭제(fileId, type, fileName, tag) {
    var msg = "첨부 파일 (" + fileName + ")을 삭제하시겠습니까?";
    AjaxJsonCall_Callback("/File/Delete", { ID: fileId, type: type }, function () { tag.remove(); }, msg);
}

/*** Subject/Detail ***/

function SubjectDetail_init() {
    $(".첨부파일목록:has(a)").css("margin", "7px 0");
}

function 글제거(id) {
    AjaxJsonCall_Redirect("/Article/Delete", { ID: id }, "글을 제거하시겠습니까?");
}

function 글DB삭제(id) {
    AjaxJsonCall_Redirect("/Article/DeleteFromDB", { ID: id }, "글을 DB에서 삭제하시겠습니까?");
}

function 전산소만보기설정(id, value) {
    var msg = value ? "전산소만 보기 설정을 적용하시겠습니까?" : "전산소만 보기 설정을 취소하시겠습니까?";
    AjaxJsonCall_Redirect("/Article/SetComCenterOnly", { ID: id, value: value }, msg);
}

function 글이동(글ID) {
    주제선택대화상자_보이기('글 이동', function (선택된주제ID) { AjaxJsonCall_Redirect("/Article/Move", { ID: 글ID, subjectID: 선택된주제ID }); });
}

function 주제제거(id) {
    AjaxJsonCall_Redirect("/Subject/Delete", { ID: id }, "주제를 제거하시겠습니까?");
}

function 주제제거취소(id) {
    AjaxJsonCall_Redirect("/Subject/Undelete", { ID: id });
}

function 주제이동(id) {
    주제선택대화상자_보이기('주제 이동', function (선택된주제ID) { AjaxJsonCall_Redirect("/Subject/Move", { ID: id, parentID: 선택된주제ID }); });
}

function 하위주제생성(id) {
    showPromptDialog(
        '하위주제 생성', '주제명:',
        function (value) { AjaxJsonCall_Redirect("/Subject/CreateChild", { parentID: id, title: value }); }
    );
}

function 주제명변경(id, oldTitle) {
    showPromptDialog(
        '주제명 변경', '새 주제명:',
        function (value) { AjaxJsonCall_Redirect("/Subject/Rename", { ID: id, title: value }); },
        { defaultValue: oldTitle }
    );
}

function 책갈피추가(id, 글코드) {
    책갈피그룹선택대화상자_보이기(
        '책갈피 추가',
        function (책갈피그룹ID) { AjaxJsonCall_Callback("/Bookmark/Add", { subjectId: id, articleCode: 글코드, bookmarkGroupId: 책갈피그룹ID }); }
    );
}

function URL보이기(url) { prompt("클립보드에 복사는 Ctrl+C", url); }

/*** Subject/Removed.cshtml ***/
function 글제거취소(id) {
    AjaxJsonCall_Redirect("/Article/Undelete", { ID: id }, "글을 복구하시겠습니까?");
}

/*** Subject/Sort.cshtml ***/

function 목차순서저장(id, order) {
    AjaxJsonCall_Redirect("/Subject/Sort", { ID: id, order: order });
}

/*** User/Login.cshtml */

function 로그인() {
    AjaxJsonCall_Redirect("/User/Login", $(".로그인 form").serialize());
}

/*** BBS ***/

/* BbsArticle/Edit.cshtml */
function 게시글저장() {
    se2update();
    AjaxJsonCall_Redirect("/BbsArticle/Save", $("#편집폼").serialize());
}

/* BbsArticle/Detail.cshtml */
function 게시글삭제(id) {
    AjaxJsonCall_Redirect("/BbsArticle/Delete", { ID: id }, "삭제하시겠습니까?");
}

/* BbsEdit.cshtml */
function 게시판제목저장() {
    AjaxJsonCall_Callback("/Bbs/UpdateTitle", $("#제목폼").serialize(), function () { alert("저장되었습니다"); });
}

function 게시글분류삭제(id) {
    AjaxJsonCall_Redirect("/Bbs/DeleteCategory", { id : id }, "삭제하시겠습니까?");
}

function 게시글분류저장(id, link) {
    AjaxJsonCall_Callback("/Bbs/UpdateCategory", { id: id, title: $(link).parents('tr').find('input').val() }, function () { alert("저장되었습니다"); });
}

function 게시글분류추가(id, link) {    
    AjaxJsonCall_Redirect("/Bbs/AddCategory", { id: id, title: $(link).parents('tr').find('input').val() });
}

function 새게시판생성() {
    AjaxJsonCall_Redirect("/Bbs/New", null, "게시판을 생성하시겠습니까?");
}

function 게시판삭제(id) {
    AjaxJsonCall_Redirect("/Bbs/Delete", { id: id }, "삭제하시겠습니까?");
}